module.exports = {
	/**
	 * 去除特殊字符~!@#$^-&*()=|{}':;',\[].<>/?~！@#￥……&*（）——|{}【】'；：""'。，、？
	 */
	trimSpecial(string) {
		//替换字符串中的所有特殊字符（包含空格）
		if (string != "") {
			const pattern = /[`~!@#$^\-&*()=|{}':;',\\\[\]\.<>\/?~！@#￥……&*（）——|{}【】'；：""'。，、？\s]/g;
			string = string.replace(pattern, "");
		}
		return string || ''
	},
	/**
	 * 获取当前页面url中所携带的参数-h5
	 */
	getRequestParams() {
		let url = location.href;
		let requestParams = {};
		if (url.indexOf("?") !== -1) {
			let str = url.substr(url.indexOf("?") + 1); //截取?后面的内容作为字符串
			let strs = str.split("&"); //将字符串内容以&分隔为一个数组
			for (let i = 0; i < strs.length; i++) {
				requestParams[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
				// 将数组元素中'='左边的内容作为对象的属性名，'='右边的内容作为对象对应属性的属性值
			}
		}
		return requestParams;
	},
	/**
	 * 打开文件
	 */
	openPreviewFiles(filePath) {
		let system = uni.getSystemInfoSync().platform;
		if (system == 'ios') {
			filePath = encodeURI(filePath);
		}
		uni.downloadFile({
			url: filePath,
			success: function(res) {
				var loaclfilePath = res.tempFilePath;
				uni.openDocument({
					showMenu: true,
					filePath: loaclfilePath,
					success: res => {
						console.log(res);
						console.log('打开文档成功');
						uni.showToast({
							title: '正在打开...',
							icon: 'none'
						});
					},
					fail: res1 => {
						uni.getImageInfo({
							src: loaclfilePath,
							success: imgInfo => {
								console.log('打开图片成功');
								uni.previewImage({
									current: loaclfilePath,
									urls: [loaclfilePath]
								});
							},
							fail: err => {
								console.log('不支持该格式');
								uni.showToast({
									title: '不支持该格式',
									icon: 'none'
								});
								return;
							}
						});
					}
				});
			}
		});
	},
	/**
	 * 生产四位随机数
	 */
	getRandom() {
		// 格式化后：注意换行分割
		return Math.floor(Math.random() * 10) * 1000 + Math.floor(Math.random() * 10) * 100 + Math.floor(Math
			.random() * 10) * 10 + Math.floor(Math.random() * 10);
	},
	/**
	 * 判断是否为空
	 */
	is_empty(value) {
		switch (typeof value) {
			case 'undefined':
				return true;
			case 'string':
				if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
				break;
			case 'boolean':
				if (!value) return true;
				break;
			case 'number':
				if (0 === value || isNaN(value)) return true;
				break;
			case 'object':
				if (null === value || value.length === 0) return true;
				for (var i in value) {
					return false;
				}
				return true;
		}
		return false;
	},
	/**
	 * 验证电子邮箱格式
	 */
	email(value) {
		return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
	},
	/**
	 * 验证手机格式
	 */
	mobile(value) {
		return /^1[3-9]\d{9}$/.test(value)
	},
	/**
	 * 判断是否数组
	 */
	in_array(value, arr) {
		for (let key in arr) {
			if (arr[key] == value) return true
		}
		return false
	},
	/**
	 * 判断是否手机端类型
	 */
	isMobile() {
		if ((navigator.userAgent.match(
				/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
			))) {
			return true // 手机端
		} else {
			return false // alert('PC端')
		}
	},
	/**
	 * 深度克隆
	 */
	deepClone(obj) {
		// 对常见的“非”值，直接返回原来值
		if ([null, undefined, NaN, false].includes(obj)) return obj;
		if (typeof obj !== "object" && typeof obj !== 'function') {
			//原始类型直接返回
			return obj;
		}
		var o = isArray(obj) ? [] : {};
		for (let i in obj) {
			if (obj.hasOwnProperty(i)) {
				o[i] = typeof obj[i] === "object" ? deepClone(obj[i]) : obj[i];
			}
		}
		return o;
	},
	/**
	 * 只能输入字母
	 */
	letter(value) {
		return /^[a-zA-Z]*$/.test(value);
	},
	/**
	 * 只能是字母或者数字
	 */
	enOrNum(value) {
		//英文或者数字
		let reg = /^[0-9a-zA-Z]*$/g;
		return reg.test(value);
	},
	/**
	 * 点击复制
	 */
	copyVlaue(content) {
		uni.setClipboardData({
			data: content,
			success: res => {
				uni.showToast({
					title: '复制成功',
					icon: 'none',
					duration: 2000 //时间
				});
			}
		});
	},
}
